﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommandListsVerifier
{

    /// <summary>
    /// Описывает действие одного из узлов в рамках команды
    /// </summary>
    public class Action
    {
        /// <summary>
        /// Название действия
        /// </summary>
        public string Name;

        /// <summary>
        /// Узел, подвергающийся действию
        /// </summary>
        public Node Node;

        /// <summary>
        /// Название параметра, в которых будет храниться цели, если таковой параметр используется
        /// </summary>ы
        public string TargetParamName;

        /// <summary>
        /// Cостояние-назначене узла, в которые должно привести действие
        /// </summary>
        public int TargetState;

        /// <summary>
        /// Смещения по модулю, на которое постоянно изменяется состояние узла при выполнении этого действия (считается что все узлы всегда стараются приблизится к целевому состоянию)
        /// </summary>
        public int DSt;

        /// <summary>
        /// Является ли команда асинхронной
        /// </summary>
        /// <remarks>
        /// false = Go + Wait (т.е. на этом состоянии будет выполняться шаг и ожидание достижения конечного состояния)
        /// true - Go (т.е. Dst будет производитьбся во всех тактах до следующей команды)
        /// </remarks>
        public bool Asynchronous;
    }
}
